// 如果字符串中不含有任何 'aaa'，'bbb' 或 'ccc' 这样的字符串作为子串，那么该字符串就是一个「快乐字符串」。
// 给你三个整数 a，b ，c，请你返回 任意一个 满足下列全部条件的字符串 s：
//     s 是一个尽可能长的快乐字符串。
//     s 中 最多 有a 个字母 'a'、b 个字母 'b'、c 个字母 'c' 。
//     s 中只含有 'a'、'b' 、'c' 三种字母。
// 如果不存在这样的字符串 s ，请返回一个空字符串 ""。

// 示例 1：
// 输入：a = 1, b = 1, c = 7
// 输出："ccaccbcc"
// 解释："ccbccacc" 也是一种正确答案。

// 示例 2：
// 输入：a = 2, b = 2, c = 1
// 输出："aabbc"

// 示例 3：
// 输入：a = 7, b = 1, c = 0
// 输出："aabaa"
// 解释：这是该测试用例的唯一正确答案。

// 提示：
//     0 <= a, b, c <= 100
//     a + b + c > 0
/**
 * @param {number} a
 * @param {number} b
 * @param {number} c
 * @return {string}
 */
////思路：先安排数量最多的.  先来个硬拼的！！！！
// var longestDiverseString = function(a, b, c) {
//     let result = "";
//     while(a >= 1 || b >= 1 || c >=1) {
//         //console.log(a + '  ' + b + '   ' + c);
//         let max = Math.max(a, b, c);
//         if (max >= 2) {
//             if (a >= max) {
//                 if (result[result.length - 1] !== "a") {
//                     result += "aa";
//                     a -= 2;
//                 } else {
//                     if (b > 0) {
//                         result += "b";
//                         b--;
//                         continue;
//                     }
//                     if (c > 0) {
//                         result += "c";
//                         c--;
//                         continue;
//                     }
//                     if (b === 0 && c === 0) {
//                         break;
//                     }
//                 }
//             } else if(b >= max) {
//                 if (result[result.length - 1] !== "b") {
//                     result += "bb";
//                     b -= 2;
//                 } else {
//                     if (a > 0) {
//                         result += "a";
//                         a--;
//                         continue;
//                     }
//                     if (c > 0) {
//                         result += "c";
//                         c--;
//                         continue;
//                     }
//                     if (a === 0 && c === 0) {
//                         break;
//                     }
//                 }
//             } else if(c >= max) {
//                 if (result[result.length - 1] !== "c") {
//                     result += "cc";
//                     c -= 2;
//                 } else {
//                     if (a > 0) {
//                         result += "a";
//                         a--;
//                         continue;
//                     }
//                     if (b > 0) {
//                         result += "b";
//                         b--;
//                         continue;
//                     }
//                     if (a === 0 && b === 0) {
//                         break;
//                     }
//                 }
//             }
//         } else {
//             if (a === max) {
//                 if(result[result.length - 1] !== "a") {
//                     result += "a";
//                     a--;
//                 } else {
//                     if (b > 0) {
//                         result += "b";
//                         b--;
//                         continue;
//                     }
//                     if (c > 0) {
//                         result += "c";
//                         c--;
//                         continue;
//                     }
//                     if (b === 0 && c === 0) {
//                         break;
//                     }
//                 }
//             } else if (b === max) {
//                 if(result[result.length - 1] !== "b") {
//                     result += "b";
//                     b--;
//                 } else {
//                     if (a > 0) {
//                         result += "a";
//                         a--;
//                         continue;
//                     }
//                     if (c > 0) {
//                         result += "c";
//                         c--;
//                         continue;
//                     }
//                     if (a === 0 && c === 0) {
//                         break;
//                     }
//                 }
//             } if (c === max) {
//                 if(result[result.length - 1] !== "c") {
//                     result += "c";
//                     c--;
//                 } else {
//                     if (a > 0) {
//                         result += "a";
//                         a--;
//                         continue;
//                     }
//                     if (b > 0) {
//                         result += "b";
//                         b--;
//                         continue;
//                     }
//                     if (a === 0 && b === 0) {
//                         break;
//                     }
//                 }
//             }
            
//         }
//     }
//     return result;
// };

var longestDiverseString = function(a, b, c) {
    ///思想就是每次循环判断剩余的最多的值
    let arr =[
        {str:"a", cnt: a},
        {str:"b", cnt: b},
        {str:"c", cnt: c},
    ];
    let result = "";
    
    while(true) {
        let flag = false;
        arr.sort((a, b)=>{
            return b.cnt - a.cnt;
        });
        for(let i = 0; i < 3; i++) {
            if (result[result.length - 1] === arr[i].str) {
                continue;
            }
            let cnt = arr[i].cnt;
            if (cnt >= 2) {
                result += (arr[i].str).repeat(2);
                arr[i].cnt -= 2;
                flag = true;
            } else if (cnt === 1) {
                result += arr[i].str;
                arr[i].cnt -= 1;
                flag = true;
            }
            break;
        }

        if (!flag) break;

    }
    return result;
};
console.log(longestDiverseString(3,1,1));



